"use client"; import { AgentDetails } from "@/components/agent-details"; import { Agent } from "@/types/agent"; import { useEffect, useState } from "react"; import { fetchAgentStats } from "@/lib/agents"; export default function AgentClient({ id }: { id: string }) { const [agents, setAgents] = useState(); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { let isMounted = true; const loadAgents = async () => { setLoading(true); setError(null); try { const res = await fetch(`/api/agents?agentId=${id}`); if (!res.ok) throw new Error(`Failed to fetch agent ${id}`); const data = await res.json(); const agentsResult = await fetchAgentStats(data); if (isMounted) { setAgents(Array.isArray(agentsResult) ? agentsResult[0] : agentsResult); } } catch (err: any) { if (isMounted) { setError(err.message || `Error loading agent ${id}`); } } finally { if (isMounted) { setLoading(false); } } }; loadAgents(); return () => { isMounted = false; }; }, []); return (
{error ? (
Error loading agents: {error}
) : !agents || loading ? (
) : ( )}
); }